Various processing functionality of computing operating systems is split between a trusted kernel mode and an untrusted (or semi-trusted) user mode. Conventionally, information is shared between the two modes using I/O request packets (IRPs) or by sharing sections of memory. Using IRPs, however, can cause bottlenecks in application performance, and sharing memory is potentially insecure and does not allow for dynamic or easily traversable structured data.
It is with respect to these and other general considerations that the aspects disclosed herein have been made. Also, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving the specific problems identified in the background or elsewhere in this disclosure.